﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ImobitechModel.com.Command;
using ImobitechModel.com.Constantes;
using ImobitechModel.Facade;
using ImobitechDao;

namespace ImobitechModel.com.Controller
{  
    public class ControladorTreinamento
    {
        public Object retornaTreinamentos(IDictionary<string, string> values)
        {
            GestaoFacade treinamentoFacade = GestaoFacade.getInstance();
            return treinamentoFacade.retornaTreinamentos();
        }

        public Object retornaTreinamento(IDictionary<string, string> values)
        {
            Treinamento treinamento = new Treinamento();
            int id = int.Parse(values.First(p => p.Key == NomeCampoConstantes.campo_TreinamentoId).Value);
            GestaoFacade treinamentoFacade = GestaoFacade.getInstance();
            treinamento = (Treinamento)treinamentoFacade.retornaTreinamento(id);

            IDictionary<string, string> treinamentoDictionary = new Dictionary<string, string>();
            treinamentoDictionary.Add(NomeCampoConstantes.campo_TreinamentoNome, treinamento.Nome);
            treinamentoDictionary.Add(NomeCampoConstantes.campo_TreinamentoDescricao, treinamento.Descricao);

            return treinamentoDictionary;
        }

        public Object inserirTreinamento(IDictionary<string, string> values)
        {
            Treinamento treinamento = new Treinamento();
            treinamento.Nome = values.First(p => p.Key == NomeCampoConstantes.campo_TreinamentoNome).Value;
            treinamento.Descricao = values.First(p => p.Key == NomeCampoConstantes.campo_TreinamentoDescricao).Value;

            GestaoFacade treinamentoFacade = GestaoFacade.getInstance();
            return treinamentoFacade.inserirTreinamento(treinamento);
        }

        public Object editarTreinamento(IDictionary<string, string> values)
        {
            Treinamento treinamento = new Treinamento();
            treinamento.Nome = values.First(p => p.Key == NomeCampoConstantes.campo_TreinamentoNome).Value;
            treinamento.Descricao = values.First(p => p.Key == NomeCampoConstantes.campo_TreinamentoDescricao).Value;

            treinamento.Id = int.Parse(values.First(p => p.Key == NomeCampoConstantes.campo_TreinamentoId).Value);
            GestaoFacade treinamentoFacade = GestaoFacade.getInstance();
            return treinamentoFacade.editaTreinamento(treinamento);
        }
    }
}
